今天我們要來做修改Views跟現有data的變更,包含前後端。
Views的結構基本是運用xml定義,如果要在特定欄位新增,需要使用position來宣告,進行以下操作:
<field name="isbn" position="after">
<field name="is_available" />
</field>
某些情況下,我們可能沒有唯一値的node來做定位,這樣的話可以使用Xpath來定位,
<xpath expr="//field[@name='isbn']" position="after">
<field name="is_available" />
</xpath>
-->
<field name="name" position="replace"><h1>$0</h1></field>
<field name="target_field" position="after">
<field name="my_field" position="move"/>
</field>
如果是要修改現有的data的話,就不用像剛剛一樣,需要修改xml,只需要確定要寫入的記錄以及要更新的欄位和值。
這邊想將User security group變更為Librarian,到library_app.library_group_user:
<odoo>
<record id="library_app.library_group_user" model="res.groups">
<field name="name">Librarian</field>
</record>
</odoo>
剛剛講到的都是後端介面,接下來就是要說前端,之前有說到在web頁面(圖書清單)判斷此書可否借,並只顯示可借書籍,會做在QWeb templates上,
新增library_member/views/book_list_template.xml
<odoo>
<template id="book_list_extended"
name="Extended Book List"
inherit_id="library_app.book_list_template">
<xpath expr="//span[@t-field='book.publisher_id']"
position="after">
<t t-if="not book.is_available">
<b>(Not Available)</b>
</t>
</xpath>
</template>
</odoo>
在記得到library_member/manifest.py data裡宣告:
"data":[
"views/book_list_template.xml",
],
最後再到http:// my-server:8069 /library/books